﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ITCR.ProyectoAgricola.Datos;
using ITCR.ProyectoAgricola.Base;
using ITCR.ProyectoAgricola.Negocios;
using System.Threading;
using System.Data;
using System.Data.SqlTypes;
using System.Data.SqlClient;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;

namespace ITCR.ProyectoAgricola.Interfaz
{
    public partial class catalogoInicio : System.Web.UI.Page
    {

        public cEMPRESABase listaEmpresas = new cEMPRESABase();
        public DataTable dataTableEmpresas = new DataTable();
        public PDFGenerator pdf = new PDFGenerator();

        //public List<string> listaIDs = new List<string>();
        public string[] arregloIDs;
        public string[] arregloNombresEmpresas;
        string[] arregloIdsBusquedas;
        public string variableID;
        public string index;
        public int indexEmpresa;
        string paramBusquedaIntroducido;
        string busquedaExtranjera;


        public void listboxResultadoBusqueda_Click(Object sender, EventArgs e)
        {
            index = listboxResultadoBusqueda.SelectedValue;   

            for (int i = 0; i < arregloNombresEmpresas.Length; i++)
            {
                if (arregloNombresEmpresas[i].ToString().Equals(index))
                {
                    variableID = arregloIDs[i].ToString();
                }
            }

            Session["idEmpresa"] = variableID;
            //Response.RedirectPermanent("desplegarEmpresaPerfil.aspx?idEmpresa=" + variableID);
            Response.RedirectPermanent("desplegarEmpresaPerfil.aspx");
        }


        public void ButtonBuscar_Click(Object sender, EventArgs e)
        {

            dataTableEmpresas = listaEmpresas.SeleccionarTodos();
            paramBusquedaIntroducido = TextParametroBusqueda.Value;
            listboxResultadoBusqueda.Items.Clear();
            arregloIdsBusquedas = new string[arregloNombresEmpresas.Length];

            if (paramBusquedaIntroducido.Equals(""))
            {
                //Response.Write("<script>alert('Debe ingresar una o más palabras de búsqueda'); </script>");
            }
            else
            {
                //BUSQUEDA POR EMPRESA
                if (SelectFiltroBusqueda.Value.Equals("Empresa"))
                {
                    for (int i = 0; i < arregloNombresEmpresas.Length; i++)
                    {
                        if (arregloNombresEmpresas[i].ToLower().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {
                            //Response.Write("<script>alert('Si contiene la palabra'); </script>");
                            listboxResultadoBusqueda.Items.Add(dataTableEmpresas.Rows[i][2].ToString());
                            arregloIdsBusquedas[i] = dataTableEmpresas.Rows[i][0].ToString();
                        }
                    }
                }

                //BUSQUEDA POR IMPLEMENTACION
                if (SelectFiltroBusqueda.Value.Equals("Implementación"))
                {
                    cDATOSIMPLEMENTACIONBase datosImplementacion = new cDATOSIMPLEMENTACIONBase();
                    DataTable datosTablaImplementacion = new DataTable();
                    datosTablaImplementacion = datosImplementacion.SeleccionarTodos();

                    cIMPLEMENTACIONBase implementacionBuscada = new cIMPLEMENTACIONBase();
                    DataTable tablaImplementacionBuscada = new DataTable();
                    tablaImplementacionBuscada = implementacionBuscada.SeleccionarTodos();
                    cEMPRESABase empresa = new cEMPRESABase();
                    
                    List<string> listaEmpresasIncluidas = new List<string>();
                    bool bandera = false;

                    for (int i = 0; i < datosTablaImplementacion.Rows.Count; i++)
                    {
                        if (datosTablaImplementacion.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaImplementacionBuscada.Rows.Count; j++)
                            {

                                if (tablaImplementacionBuscada.Rows[j][i+2].Equals(1))
                                {                                    
                                    empresa.IdEmpresa = int.Parse(tablaImplementacionBuscada.Rows[j][1].ToString());
                                    empresa.SeleccionarUno();
                                   
                                    if (listaEmpresasIncluidas.Count == 0)
                                    {
                                        listaEmpresasIncluidas.Add(empresa.NombreEmpresa.ToString());
                                        listboxResultadoBusqueda.Items.Add(empresa.NombreEmpresa.ToString());
                                        arregloIdsBusquedas[j] = empresa.IdEmpresa.ToString();                                        
                                    }
                                    else
                                    {                                        
                                        for (int k = 0; k < listaEmpresasIncluidas.Count; k++)
                                        {
                                            if (empresa.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[k]))
                                            {
                                                bandera = true;
                                                //ya existe la empresa en la lista    
                                            }                                            
                                        }
                                        
                                        if(bandera == false)
                                        {
                                            listaEmpresasIncluidas.Add(empresa.NombreEmpresa.ToString());
                                            listboxResultadoBusqueda.Items.Add(empresa.NombreEmpresa.ToString());
                                            arregloIdsBusquedas[j] = empresa.IdEmpresa.ToString();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                //BUSQUEDA POR PRODUCCION
                if (SelectFiltroBusqueda.Value.Equals("Producción"))
                {
                    cDATOPRODUCCIONBase datosProduccion = new cDATOPRODUCCIONBase();
                    DataTable datosTablaProduccion = new DataTable();
                    datosTablaProduccion = datosProduccion.SeleccionarTodos();

                    cPRODUCCIONBase produccionBuscada = new cPRODUCCIONBase();
                    DataTable tablaProduccionBuscada = new DataTable();
                    tablaProduccionBuscada = produccionBuscada.SeleccionarTodos();
                    
                    cEMPRESABase empresa2 = new cEMPRESABase();
                    List<string> listaEmpresasIncluidas = new List<string>();
                    bool bandera = false;
                    

                    //Busqueda en la tabla Produccion principal
                    for (int i = 0; i < datosTablaProduccion.Rows.Count; i++)
                    {
                        if (datosTablaProduccion.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {
                            //Response.Write("<script>alert('Produccion princiapal'); </script>");

                            for (int j = 0; j < tablaProduccionBuscada.Rows.Count; j++)
                            {                                   
                                    if (tablaProduccionBuscada.Rows[j][i+2].Equals(1))
                                    {
                                        empresa2.IdEmpresa = int.Parse(tablaProduccionBuscada.Rows[j][1].ToString());
                                        empresa2.SeleccionarUno();

                                        if (listaEmpresasIncluidas.Count == 0)
                                        {
                                            listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                            listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                            arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                        }
                                        else
                                        {
                                            for (int k = 0; k < listaEmpresasIncluidas.Count; k++)
                                            {
                                                if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[k]))
                                                {
                                                    //ya existe la empresa en la lista
                                                    bandera = true;
                                                }
                                            }
                                            if(bandera == false)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                        }
                                        
                                    }
                            }
                        }
                    }

                    
                    //Tabla produccion equipos
                     cDATOS_PRODUCCION_EQUIPOBase datosProduccionEquipo = new cDATOS_PRODUCCION_EQUIPOBase();
                     DataTable datosTablaProduccionEquipo = new DataTable();
                     datosTablaProduccionEquipo = datosProduccionEquipo.SeleccionarTodos();

                     cPRODUCCIONEQUIPOBase produccionEquipoBuscada = new cPRODUCCIONEQUIPOBase();
                     DataTable tablaProduccionEquipoBuscada = new DataTable();
                     tablaProduccionEquipoBuscada = produccionEquipoBuscada.SeleccionarTodos();
                    
                     int idProduccion;
                     int idEmpresa;

                                        

                    //Busqueda en tabla Produccion Equipos
                    //******************************************************************************
                       for (int i = 0; i < datosTablaProduccionEquipo.Rows.Count; i++)
                       {                          

                           if (datosTablaProduccionEquipo.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                           {
                               
                               for (int j = 0; j < tablaProduccionEquipoBuscada.Rows.Count; j++)
                               {
                                   if (tablaProduccionEquipoBuscada.Rows[j][i + 1].Equals(1))
                                   {
                                       idProduccion = int.Parse(tablaProduccionEquipoBuscada.Rows[j][0].ToString());

                                       cPRODUCCIONBase produccion = new cPRODUCCIONBase();
                                       DataTable tablaProduccion = new DataTable();
                                       tablaProduccion = produccion.SeleccionarTodos();

                                       for (int k = 0; k < tablaProduccion.Rows.Count; k++)
                                       {
                                           if (tablaProduccion.Rows[k][0].Equals(idProduccion))
                                           {
                                               idEmpresa = int.Parse(tablaProduccion.Rows[k][1].ToString());
                                               empresa2.IdEmpresa = idEmpresa;
                                               empresa2.SeleccionarUno();

                                               if (listaEmpresasIncluidas.Count == 0)
                                               {
                                                   listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                   listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                   arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();                                                   
                                               }
                                               else
                                               {
                                                   for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                   {                                                                                                              

                                                       if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                       {
                                                           //ya existe la empresa en la lista                                                             
                                                           bandera = true;
                                                       }                                                       
                                                   }

                                                   if (bandera == false)
                                                   {                                                      
                                                        listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                        listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                        arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();                                                     
                                                   }
                                               }                                                 
                                           }
                                       }
                                   }
                                   
                               }
                           }
                       }

                    //Tablas produccion quimicos
                    cDATOS_PRODUCCIONQUIMICOBase datosProduccionQuimico = new cDATOS_PRODUCCIONQUIMICOBase();
                    DataTable datosTablaProduccionQuimico = new DataTable();
                    datosTablaProduccionQuimico = datosProduccionQuimico.SeleccionarTodos();

                    cPRODUCCIONQUIMICOBase produccionQuimicoBuscada = new cPRODUCCIONQUIMICOBase();
                    DataTable tablaProduccionQuimicoBuscada = new DataTable();
                    tablaProduccionQuimicoBuscada = produccionQuimicoBuscada.SeleccionarTodos();

                    for (int i = 0; i < datosTablaProduccionQuimico.Rows.Count; i++)
                    {

                        if (datosTablaProduccionQuimico.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {
                            //Response.Write("<script>alert('Produccion quimico'); </script>");
                            for (int j = 0; j < tablaProduccionQuimicoBuscada.Rows.Count; j++)
                            {
                                if (tablaProduccionQuimicoBuscada.Rows[j][i + 1].Equals(1))
                                {
                                    idProduccion = int.Parse(tablaProduccionQuimicoBuscada.Rows[j][0].ToString());

                                    cPRODUCCIONBase produccion = new cPRODUCCIONBase();
                                    DataTable tablaProduccion = new DataTable();
                                    tablaProduccion = produccion.SeleccionarTodos();

                                    for (int k = 0; k < tablaProduccion.Rows.Count; k++)
                                    {
                                        if (tablaProduccion.Rows[k][0].Equals(idProduccion))
                                        {
                                            idEmpresa = int.Parse(tablaProduccion.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {
                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista
                                                        bandera = true;
                                                    }                                                    
                                                }

                                                if(bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }                                                 
                                        }
                                    }
                                }

                            }
                        }
                    }

                    //Tablas produccion solucion
                    cDATOS_PRODUCCIONSOLUCIONBase datosProduccionSolucion = new cDATOS_PRODUCCIONSOLUCIONBase();
                    DataTable datosTablaProduccionSolucion = new DataTable();
                    datosTablaProduccionSolucion = datosProduccionSolucion.SeleccionarTodos();

                    cPRODUCCIONSOLUCIONBase produccionSolucionBuscada = new cPRODUCCIONSOLUCIONBase();
                    DataTable tablaProduccionSolucionBuscada = new DataTable();
                    tablaProduccionSolucionBuscada = produccionSolucionBuscada.SeleccionarTodos();

                    for (int i = 0; i < datosTablaProduccionSolucion.Rows.Count; i++)
                    {

                        if (datosTablaProduccionSolucion.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {
                            //Response.Write("<script>alert('Produccion solucion'); </script>");
                            for (int j = 0; j < tablaProduccionSolucionBuscada.Rows.Count; j++)
                            {
                                if (tablaProduccionSolucionBuscada.Rows[j][i + 1].Equals(1))
                                {
                                    idProduccion = int.Parse(tablaProduccionSolucionBuscada.Rows[j][0].ToString());

                                    cPRODUCCIONBase produccion = new cPRODUCCIONBase();
                                    DataTable tablaProduccion = new DataTable();
                                    tablaProduccion = produccion.SeleccionarTodos();

                                    for (int k = 0; k < tablaProduccion.Rows.Count; k++)
                                    {
                                        if (tablaProduccion.Rows[k][0].Equals(idProduccion))
                                        {
                                            idEmpresa = int.Parse(tablaProduccion.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {
                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista
                                                        bandera = true;
                                                    }                                                    
                                                }

                                                if(bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }

                                            }                                                    
                                        }
                                    }
                                }

                            }
                        }
                    }                    
                }

                //BUSQUEDA POR INSUMOS
                if (SelectFiltroBusqueda.Value.Equals("Productos e Insumos"))
                {
                    cDATOSINSUMOSBase datosInsumos = new cDATOSINSUMOSBase();
                    DataTable datosTablaInsumos = new DataTable();
                    datosTablaInsumos = datosInsumos.SeleccionarTodos();

                    cINSUMOSERVICIOBase insumoBuscado = new cINSUMOSERVICIOBase();
                    DataTable tablaInsumoBuscado = new DataTable();
                    tablaInsumoBuscado = insumoBuscado.SeleccionarTodos();                    

                    cEMPRESABase empresa2 = new cEMPRESABase();
                    List<string> listaEmpresasIncluidas = new List<string>();
                    bool bandera = false;


                    //Busqueda en la tabla Insumos principal
                    for (int i = 0; i < datosTablaInsumos.Rows.Count; i++)
                    {
                        if (datosTablaInsumos.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaInsumoBuscado.Rows.Count; j++)
                            {
                                if (paramBusquedaIntroducido.Equals("sustratos"))
                                {
                                    if (tablaInsumoBuscado.Rows[j][17].Equals(1))
                                    {
                                        empresa2.IdEmpresa = int.Parse(tablaInsumoBuscado.Rows[j][1].ToString());
                                        empresa2.SeleccionarUno();

                                        if (listaEmpresasIncluidas.Count == 0)
                                        {
                                            listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                            listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                            arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                        }
                                        else
                                        {
                                            for (int k = 0; k < listaEmpresasIncluidas.Count; k++)
                                            {
                                                if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[k]))
                                                {
                                                    //ya existe la empresa en la lista
                                                    bandera = true;
                                                }
                                            }
                                            if (bandera == false)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                        }

                                    }
                                }
                                else
                                {
                                    if (tablaInsumoBuscado.Rows[j][i + 2].Equals(1))
                                    {
                                        empresa2.IdEmpresa = int.Parse(tablaInsumoBuscado.Rows[j][1].ToString());
                                        empresa2.SeleccionarUno();

                                        if (listaEmpresasIncluidas.Count == 0)
                                        {
                                            listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                            listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                            arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                        }
                                        else
                                        {
                                            for (int k = 0; k < listaEmpresasIncluidas.Count; k++)
                                            {
                                                if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[k]))
                                                {
                                                    //ya existe la empresa en la lista
                                                    bandera = true;
                                                }
                                            }
                                            if (bandera == false)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                        }

                                    }
                                }
                            }
                        }
                    }


                    int idInsumo;
                    int idEmpresa;
                    
                    //Tabla Insumo Asuntos
                    cDATOS_INSUMOASUNTODatos datosInsumoAsuntos = new cDATOS_INSUMOASUNTODatos();
                    DataTable datosTablaInsumoAsuntos = new DataTable();
                    datosTablaInsumoAsuntos = datosInsumoAsuntos.SeleccionarTodos();

                    cINSUMOSERVICIOASUNTOBase insumoAsuntoBuscado = new cINSUMOSERVICIOASUNTOBase();
                    DataTable tablaInsumoAsuntoBuscado = new DataTable();
                    tablaInsumoAsuntoBuscado = insumoAsuntoBuscado.SeleccionarTodos();                    


                    //Busqueda en tabla Insumo Asuntos
                    //******************************************************************************
                    for (int i = 0; i < datosTablaInsumoAsuntos.Rows.Count; i++)
                    {

                        if (datosTablaInsumoAsuntos.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaInsumoAsuntoBuscado.Rows.Count; j++)
                            {
                                if (tablaInsumoAsuntoBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idInsumo = int.Parse(tablaInsumoAsuntoBuscado.Rows[j][0].ToString());

                                    cINSUMOSERVICIOBase insumo = new cINSUMOSERVICIOBase();
                                    DataTable tablaInsumo = new DataTable();
                                    tablaInsumo = insumo.SeleccionarTodos();

                                    for (int k = 0; k < tablaInsumo.Rows.Count; k++)
                                    {
                                        if (tablaInsumo.Rows[k][0].Equals(idInsumo))
                                        {
                                            idEmpresa = int.Parse(tablaInsumo.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }

                    //Tabla Insumo Diseño
                    cDATOS_INSUMODISEÑOBase datosInsumoDiseño = new cDATOS_INSUMODISEÑOBase();
                    DataTable datosTablaInsumoDiseño = new DataTable();
                    datosTablaInsumoDiseño = datosInsumoDiseño.SeleccionarTodos();

                    cINSUMOSERVICIODISEÑOBase insumoDiseñoBuscado = new cINSUMOSERVICIODISEÑOBase();
                    DataTable tablaInsumoDiseñoBuscado = new DataTable();
                    tablaInsumoDiseñoBuscado = insumoDiseñoBuscado.SeleccionarTodos();

                    //Busqueda en tabla Insumo Diseño
                    //******************************************************************************
                    for (int i = 0; i < datosTablaInsumoDiseño.Rows.Count; i++)
                    {

                        if (datosTablaInsumoDiseño.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaInsumoDiseñoBuscado.Rows.Count; j++)
                            {
                                if (tablaInsumoDiseñoBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idInsumo = int.Parse(tablaInsumoDiseñoBuscado.Rows[j][0].ToString());

                                    cINSUMOSERVICIOBase insumo = new cINSUMOSERVICIOBase();
                                    DataTable tablaInsumo = new DataTable();
                                    tablaInsumo = insumo.SeleccionarTodos();

                                    for (int k = 0; k < tablaInsumo.Rows.Count; k++)
                                    {
                                        if (tablaInsumo.Rows[k][0].Equals(idInsumo))
                                        {
                                            idEmpresa = int.Parse(tablaInsumo.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }

                    //Tabla Insumo Estudio
                    cDATOS_INSUMOESTUDIOBase datosInsumoEstudio = new cDATOS_INSUMOESTUDIOBase();
                    DataTable datosTablaInsumoEstudio = new DataTable();
                    datosTablaInsumoEstudio = datosInsumoEstudio.SeleccionarTodos();

                    cINSUMOSERVICIOESTUDIOBase insumoEstudioBuscado = new cINSUMOSERVICIOESTUDIOBase();
                    DataTable tablaInsumoEstudioBuscado = new DataTable();
                    tablaInsumoEstudioBuscado = insumoEstudioBuscado.SeleccionarTodos();

                    //Busqueda en tabla Insumo Estudio
                    //******************************************************************************
                    for (int i = 0; i < datosTablaInsumoEstudio.Rows.Count; i++)
                    {

                        if (datosTablaInsumoEstudio.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaInsumoEstudioBuscado.Rows.Count; j++)
                            {
                                if (tablaInsumoEstudioBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idInsumo = int.Parse(tablaInsumoEstudioBuscado.Rows[j][0].ToString());

                                    cINSUMOSERVICIOBase insumo = new cINSUMOSERVICIOBase();
                                    DataTable tablaInsumo = new DataTable();
                                    tablaInsumo = insumo.SeleccionarTodos();

                                    for (int k = 0; k < tablaInsumo.Rows.Count; k++)
                                    {
                                        if (tablaInsumo.Rows[k][0].Equals(idInsumo))
                                        {
                                            idEmpresa = int.Parse(tablaInsumo.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }

                    //Tabla Insumo Insumo
                    cDATOS_INSUMOINSUMOBase datosInsumoInsumo = new cDATOS_INSUMOINSUMOBase();
                    DataTable datosTablaInsumoInsumo = new DataTable();
                    datosTablaInsumoInsumo = datosInsumoInsumo.SeleccionarTodos();

                    cINSUMOSERVICIOINSUMOBase insumoInsumoBuscado = new cINSUMOSERVICIOINSUMOBase();
                    DataTable tablaInsumoInsumoBuscado = new DataTable();
                    tablaInsumoInsumoBuscado = insumoInsumoBuscado.SeleccionarTodos();

                    //Busqueda en tabla Insumo Insumo
                    //******************************************************************************
                    for (int i = 0; i < datosTablaInsumoInsumo.Rows.Count; i++)
                    {

                        if (datosTablaInsumoInsumo.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaInsumoInsumoBuscado.Rows.Count; j++)
                            {
                                if (tablaInsumoInsumoBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idInsumo = int.Parse(tablaInsumoInsumoBuscado.Rows[j][0].ToString());

                                    cINSUMOSERVICIOBase insumo = new cINSUMOSERVICIOBase();
                                    DataTable tablaInsumo = new DataTable();
                                    tablaInsumo = insumo.SeleccionarTodos();

                                    for (int k = 0; k < tablaInsumo.Rows.Count; k++)
                                    {
                                        if (tablaInsumo.Rows[k][0].Equals(idInsumo))
                                        {
                                            idEmpresa = int.Parse(tablaInsumo.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }

                    //Tabla Insumo Seguro
                    cDATOS_INSUMOSERGUROBase datosInsumoSeguro = new cDATOS_INSUMOSERGUROBase();
                    DataTable datosTablaInsumoSeguro = new DataTable();
                    datosTablaInsumoSeguro = datosInsumoSeguro.SeleccionarTodos();

                    cINSUMOSERVICIOSEGURBase insumoSeguroBuscado = new cINSUMOSERVICIOSEGURBase();
                    DataTable tablaInsumoSeguroBuscado = new DataTable();
                    tablaInsumoSeguroBuscado = insumoSeguroBuscado.SeleccionarTodos();

                    //Busqueda en tabla Insumo Seguro
                    //******************************************************************************
                    for (int i = 0; i < datosTablaInsumoSeguro.Rows.Count; i++)
                    {

                        if (datosTablaInsumoSeguro.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaInsumoSeguroBuscado.Rows.Count; j++)
                            {
                                if (tablaInsumoSeguroBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idInsumo = int.Parse(tablaInsumoSeguroBuscado.Rows[j][0].ToString());

                                    cINSUMOSERVICIOBase insumo = new cINSUMOSERVICIOBase();
                                    DataTable tablaInsumo = new DataTable();
                                    tablaInsumo = insumo.SeleccionarTodos();

                                    for (int k = 0; k < tablaInsumo.Rows.Count; k++)
                                    {
                                        if (tablaInsumo.Rows[k][0].Equals(idInsumo))
                                        {
                                            idEmpresa = int.Parse(tablaInsumo.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }

                    //Tabla Insumo Servicio
                    cDATOS_INSUMOSERVICIOBase datosInsumoServicio = new cDATOS_INSUMOSERVICIOBase();
                    DataTable datosTablaInsumoServicio = new DataTable();
                    datosTablaInsumoServicio = datosInsumoServicio.SeleccionarTodos();

                    cINSUMOSERVICIOSERVICIOBase insumoServicioBuscado = new cINSUMOSERVICIOSERVICIOBase();
                    DataTable tablaInsumoServicioBuscado = new DataTable();
                    tablaInsumoServicioBuscado = insumoServicioBuscado.SeleccionarTodos();

                    //Busqueda en tabla Insumo Servicio
                    //******************************************************************************
                    for (int i = 0; i < datosTablaInsumoServicio.Rows.Count; i++)
                    {

                        if (datosTablaInsumoServicio.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaInsumoServicioBuscado.Rows.Count; j++)
                            {
                                if (tablaInsumoServicioBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idInsumo = int.Parse(tablaInsumoServicioBuscado.Rows[j][0].ToString());

                                    cINSUMOSERVICIOBase insumo = new cINSUMOSERVICIOBase();
                                    DataTable tablaInsumo = new DataTable();
                                    tablaInsumo = insumo.SeleccionarTodos();

                                    for (int k = 0; k < tablaInsumo.Rows.Count; k++)
                                    {
                                        if (tablaInsumo.Rows[k][0].Equals(idInsumo))
                                        {
                                            idEmpresa = int.Parse(tablaInsumo.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }
                }//


                //BUSQUEDA POR EQUIPAMIENTO
                if (SelectFiltroBusqueda.Value.Equals("Equipamiento"))
                {
                    cDATOSEQUIPAMIENTOBase datosEquipamiento = new cDATOSEQUIPAMIENTOBase();
                    DataTable datosTablaEquipamiento = new DataTable();
                    datosTablaEquipamiento = datosEquipamiento.SeleccionarTodos();

                    cEQUIPAMIENTOBase equipamientoBuscado = new cEQUIPAMIENTOBase();
                    DataTable tablaEquipamientoBuscado = new DataTable();
                    tablaEquipamientoBuscado = equipamientoBuscado.SeleccionarTodos();                    

                    cEMPRESABase empresa2 = new cEMPRESABase();
                    List<string> listaEmpresasIncluidas = new List<string>();
                    bool bandera = false;


                    //Busqueda en la tabla Equipamiento principal
                    for (int i = 0; i < datosTablaEquipamiento.Rows.Count; i++)
                    {
                        if (datosTablaEquipamiento.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaEquipamientoBuscado.Rows.Count; j++)
                            {
                                if (tablaEquipamientoBuscado.Rows[j][i + 2].Equals(1))
                                {
                                    empresa2.IdEmpresa = int.Parse(tablaEquipamientoBuscado.Rows[j][1].ToString());
                                    empresa2.SeleccionarUno();

                                    if (listaEmpresasIncluidas.Count == 0)
                                    {
                                        listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                        listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                        arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                    }
                                    else
                                    {
                                        for (int k = 0; k < listaEmpresasIncluidas.Count; k++)
                                        {
                                            if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[k]))
                                            {
                                                //ya existe la empresa en la lista
                                                bandera = true;
                                            }
                                        }
                                        if (bandera == false)
                                        {
                                            listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                            listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                            arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                        }
                                    }

                                }                                
                            }
                        }
                    }


                    int idEquipamiento;
                    int idEmpresa;
                    
                    //Tabla Equipamiento Bandeja
                    cDATOS_EQUIPAMIENTOBANDEJABase datosEquipamientoBandeja = new cDATOS_EQUIPAMIENTOBANDEJABase();
                    DataTable datosTablaEquipamientoBandeja = new DataTable();
                    datosTablaEquipamientoBandeja = datosEquipamientoBandeja.SeleccionarTodos();

                    cEQUIPAMIENTOBANDEJABase equipamientoBandejaBuscado = new cEQUIPAMIENTOBANDEJABase();
                    DataTable tablaEquipamientoBandejaBuscado = new DataTable();
                    tablaEquipamientoBandejaBuscado = equipamientoBandejaBuscado.SeleccionarTodos();                    

                    //Busqueda en tabla Equipamiento Bandeja
                    //******************************************************************************
                    for (int i = 0; i < datosTablaEquipamientoBandeja.Rows.Count; i++)
                    {

                        if (datosTablaEquipamientoBandeja.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaEquipamientoBandejaBuscado.Rows.Count; j++)
                            {
                                if (tablaEquipamientoBandejaBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idEquipamiento = int.Parse(tablaEquipamientoBandejaBuscado.Rows[j][0].ToString());

                                    cEQUIPAMIENTOBase equipamiento = new cEQUIPAMIENTOBase();                                    
                                    DataTable tablaEquipamiento = new DataTable();
                                    tablaEquipamiento = equipamiento.SeleccionarTodos();

                                    for (int k = 0; k < tablaEquipamiento.Rows.Count; k++)
                                    {
                                        if (tablaEquipamiento.Rows[k][0].Equals(idEquipamiento))
                                        {
                                            idEmpresa = int.Parse(tablaEquipamiento.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }
                    
                    //Tabla Equipamiento Equipo
                    cDATOS_EQUIPAMIENTOEQUIPOBase datosEquipamientoEquipo = new cDATOS_EQUIPAMIENTOEQUIPOBase();
                    DataTable datosTablaEquipamientoEquipo = new DataTable();
                    datosTablaEquipamientoEquipo = datosEquipamientoEquipo.SeleccionarTodos();

                    cEQUIPAMIENTOEQUIPOBase equipamientoEquipoBuscado = new cEQUIPAMIENTOEQUIPOBase();
                    DataTable tablaEquipamientoEquipoBuscado = new DataTable();
                    tablaEquipamientoEquipoBuscado = equipamientoEquipoBuscado.SeleccionarTodos();

                    //Busqueda en tabla Equipamiento Equipo
                    //******************************************************************************
                    for (int i = 0; i < datosTablaEquipamientoEquipo.Rows.Count; i++)
                    {

                        if (datosTablaEquipamientoEquipo.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaEquipamientoEquipoBuscado.Rows.Count; j++)
                            {
                                if (tablaEquipamientoEquipoBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idEquipamiento = int.Parse(tablaEquipamientoEquipoBuscado.Rows[j][0].ToString());

                                    cEQUIPAMIENTOBase equipamiento = new cEQUIPAMIENTOBase();
                                    DataTable tablaEquipamiento = new DataTable();
                                    tablaEquipamiento = equipamiento.SeleccionarTodos();

                                    for (int k = 0; k < tablaEquipamiento.Rows.Count; k++)
                                    {
                                        if (tablaEquipamiento.Rows[k][0].Equals(idEquipamiento))
                                        {
                                            idEmpresa = int.Parse(tablaEquipamiento.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }

                    //Tabla Equipamiento Mallas
                    cDATOS_EQUIPAMIENTOMALLASBase datosEquipamientoMallas = new cDATOS_EQUIPAMIENTOMALLASBase();
                    DataTable datosTablaEquipamientoMallas = new DataTable();
                    datosTablaEquipamientoMallas = datosEquipamientoMallas.SeleccionarTodos();

                    cEQUIPAMIENTOMALLABase equipamientoMallasBuscado = new cEQUIPAMIENTOMALLABase();
                    DataTable tablaEquipamientoMallasBuscado = new DataTable();
                    tablaEquipamientoMallasBuscado = equipamientoMallasBuscado.SeleccionarTodos();

                    //Busqueda en tabla Equipamiento Mallas
                    //******************************************************************************
                    for (int i = 0; i < datosTablaEquipamientoMallas.Rows.Count; i++)
                    {

                        if (datosTablaEquipamientoMallas.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaEquipamientoMallasBuscado.Rows.Count; j++)
                            {
                                if (tablaEquipamientoMallasBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idEquipamiento = int.Parse(tablaEquipamientoMallasBuscado.Rows[j][0].ToString());

                                    cEQUIPAMIENTOBase equipamiento = new cEQUIPAMIENTOBase();
                                    DataTable tablaEquipamiento = new DataTable();
                                    tablaEquipamiento = equipamiento.SeleccionarTodos();

                                    for (int k = 0; k < tablaEquipamiento.Rows.Count; k++)
                                    {
                                        if (tablaEquipamiento.Rows[k][0].Equals(idEquipamiento))
                                        {
                                            idEmpresa = int.Parse(tablaEquipamiento.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }
                    

                    //Tabla Equipamiento Materiales
                    cDATOS_EQUIPAMIENTOMATERIALESBase datosEquipamientoMateriales = new cDATOS_EQUIPAMIENTOMATERIALESBase();
                    DataTable datosTablaEquipamientoMateriales = new DataTable();
                    datosTablaEquipamientoMateriales = datosEquipamientoMateriales.SeleccionarTodos();

                    cEQUIPAMIENTOMATERIALBase equipamientoMaterialesBuscado = new cEQUIPAMIENTOMATERIALBase();
                    DataTable tablaEquipamientoMaterialesBuscado = new DataTable();
                    tablaEquipamientoMaterialesBuscado = equipamientoMaterialesBuscado.SeleccionarTodos();

                    //Busqueda en tabla Equipamiento Materiales
                    //******************************************************************************
                    for (int i = 0; i < datosTablaEquipamientoMateriales.Rows.Count; i++)
                    {

                        if (datosTablaEquipamientoMateriales.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaEquipamientoMaterialesBuscado.Rows.Count; j++)
                            {
                                if (tablaEquipamientoMaterialesBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idEquipamiento = int.Parse(tablaEquipamientoMaterialesBuscado.Rows[j][0].ToString());

                                    cEQUIPAMIENTOBase equipamiento = new cEQUIPAMIENTOBase();
                                    DataTable tablaEquipamiento = new DataTable();
                                    tablaEquipamiento = equipamiento.SeleccionarTodos();

                                    for (int k = 0; k < tablaEquipamiento.Rows.Count; k++)
                                    {
                                        if (tablaEquipamiento.Rows[k][0].Equals(idEquipamiento))
                                        {
                                            idEmpresa = int.Parse(tablaEquipamiento.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }
                     
                    //Tabla Equipamiento Pantallas
                    cDATOS_EQUIPAMIENTOPANTALLASBase datosEquipamientoPantallas = new cDATOS_EQUIPAMIENTOPANTALLASBase();
                    DataTable datosTablaEquipamientoPantallas = new DataTable();
                    datosTablaEquipamientoPantallas = datosEquipamientoPantallas.SeleccionarTodos();

                    cEQUIPAMIENTOPANTALLABase equipamientoPantallasBuscado = new cEQUIPAMIENTOPANTALLABase();
                    DataTable tablaEquipamientoPantallasBuscado = new DataTable();
                    tablaEquipamientoPantallasBuscado = equipamientoPantallasBuscado.SeleccionarTodos();

                    //Busqueda en tabla Equipamiento Pantallas
                    //******************************************************************************
                    for (int i = 0; i < datosTablaEquipamientoPantallas.Rows.Count; i++)
                    {

                        if (datosTablaEquipamientoPantallas.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaEquipamientoPantallasBuscado.Rows.Count; j++)
                            {
                                if (tablaEquipamientoPantallasBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idEquipamiento = int.Parse(tablaEquipamientoPantallasBuscado.Rows[j][0].ToString());

                                    cEQUIPAMIENTOBase equipamiento = new cEQUIPAMIENTOBase();
                                    DataTable tablaEquipamiento = new DataTable();
                                    tablaEquipamiento = equipamiento.SeleccionarTodos();

                                    for (int k = 0; k < tablaEquipamiento.Rows.Count; k++)
                                    {
                                        if (tablaEquipamiento.Rows[k][0].Equals(idEquipamiento))
                                        {
                                            idEmpresa = int.Parse(tablaEquipamiento.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }

                    //Tabla Equipamiento Plasticos
                    cDATOS_EQUIPAMIENTOPLASTICOSBase datosEquipamientoPlasticos = new cDATOS_EQUIPAMIENTOPLASTICOSBase();
                    DataTable datosTablaEquipamientoPlasticos = new DataTable();
                    datosTablaEquipamientoPlasticos = datosEquipamientoPlasticos.SeleccionarTodos();

                    cEQUIPAMIENTOPLASTICOBase equipamientoPlasticosBuscado = new cEQUIPAMIENTOPLASTICOBase();
                    DataTable tablaEquipamientoPlasticosBuscado = new DataTable();
                    tablaEquipamientoPlasticosBuscado = equipamientoPlasticosBuscado.SeleccionarTodos();

                    //Busqueda en tabla Equipamiento Plasticos
                    //******************************************************************************
                    for (int i = 0; i < datosTablaEquipamientoPlasticos.Rows.Count; i++)
                    {

                        if (datosTablaEquipamientoPlasticos.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaEquipamientoPlasticosBuscado.Rows.Count; j++)
                            {
                                if (tablaEquipamientoPlasticosBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idEquipamiento = int.Parse(tablaEquipamientoPlasticosBuscado.Rows[j][0].ToString());

                                    cEQUIPAMIENTOBase equipamiento = new cEQUIPAMIENTOBase();
                                    DataTable tablaEquipamiento = new DataTable();
                                    tablaEquipamiento = equipamiento.SeleccionarTodos();

                                    for (int k = 0; k < tablaEquipamiento.Rows.Count; k++)
                                    {
                                        if (tablaEquipamiento.Rows[k][0].Equals(idEquipamiento))
                                        {
                                            idEmpresa = int.Parse(tablaEquipamiento.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }

                    //Tabla Equipamiento Sistemas
                    cDATOS_EQUIPAMIENTOSISTEMASBase datosEquipamientoSistemas = new cDATOS_EQUIPAMIENTOSISTEMASBase();
                    DataTable datosTablaEquipamientoSistemas = new DataTable();
                    datosTablaEquipamientoSistemas = datosEquipamientoSistemas.SeleccionarTodos();

                    cEQUIPAMIENTOSISTEMABase equipamientoSistemasBuscado = new cEQUIPAMIENTOSISTEMABase();
                    DataTable tablaEquipamientoSistemasBuscado = new DataTable();
                    tablaEquipamientoSistemasBuscado = equipamientoSistemasBuscado.SeleccionarTodos();

                    //Busqueda en tabla Equipamiento Sistemas
                    //******************************************************************************
                    for (int i = 0; i < datosTablaEquipamientoSistemas.Rows.Count; i++)
                    {

                        if (datosTablaEquipamientoSistemas.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaEquipamientoSistemasBuscado.Rows.Count; j++)
                            {
                                if (tablaEquipamientoSistemasBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idEquipamiento = int.Parse(tablaEquipamientoSistemasBuscado.Rows[j][0].ToString());

                                    cEQUIPAMIENTOBase equipamiento = new cEQUIPAMIENTOBase();
                                    DataTable tablaEquipamiento = new DataTable();
                                    tablaEquipamiento = equipamiento.SeleccionarTodos();

                                    for (int k = 0; k < tablaEquipamiento.Rows.Count; k++)
                                    {
                                        if (tablaEquipamiento.Rows[k][0].Equals(idEquipamiento))
                                        {
                                            idEmpresa = int.Parse(tablaEquipamiento.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }
                }//

                //BUSQUEDA POR POSCOSECHA
                if (SelectFiltroBusqueda.Value.Equals("Poscosecha"))
                {
                    cDATOSPOSCOSECHABase datosPoscosecha = new cDATOSPOSCOSECHABase();
                    DataTable datosTablaPoscosecha = new DataTable();
                    datosTablaPoscosecha = datosPoscosecha.SeleccionarTodos();

                    cPOSCOSECHABase poscosechaBuscado = new cPOSCOSECHABase();
                    DataTable tablaPoscosechaBuscado = new DataTable();
                    tablaPoscosechaBuscado = poscosechaBuscado.SeleccionarTodos();                    

                    cEMPRESABase empresa2 = new cEMPRESABase();
                    List<string> listaEmpresasIncluidas = new List<string>();
                    bool bandera = false;


                    //Busqueda en la tabla Poscosecha principal
                    for (int i = 0; i < datosTablaPoscosecha.Rows.Count; i++)
                    {
                        if (datosTablaPoscosecha.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaPoscosechaBuscado.Rows.Count; j++)
                            {
                                if (tablaPoscosechaBuscado.Rows[j][i + 2].Equals(1))
                                {
                                    empresa2.IdEmpresa = int.Parse(tablaPoscosechaBuscado.Rows[j][1].ToString());
                                    empresa2.SeleccionarUno();

                                    if (listaEmpresasIncluidas.Count == 0)
                                    {
                                        listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                        listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                        arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                    }
                                    else
                                    {
                                        for (int k = 0; k < listaEmpresasIncluidas.Count; k++)
                                        {
                                            if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[k]))
                                            {
                                                //ya existe la empresa en la lista
                                                bandera = true;
                                            }
                                        }
                                        if (bandera == false)
                                        {
                                            listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                            listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                            arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                        }
                                    }

                                }
                            }
                        }
                    }


                    int idPoscosecha;
                    int idEmpresa;

                    //Tabla PoscosechaCaja
                    cDATOS_POSCOSECHACAJABase datosPoscosechaCaja = new cDATOS_POSCOSECHACAJABase();
                    DataTable datosTablaPoscosechaCaja = new DataTable();
                    datosTablaPoscosechaCaja = datosPoscosechaCaja.SeleccionarTodos();

                    cPOSCOSECHACAJABase poscosechaCajaBuscado = new cPOSCOSECHACAJABase();
                    DataTable tablaPoscosechaCajaBuscado = new DataTable();
                    tablaPoscosechaCajaBuscado = poscosechaCajaBuscado.SeleccionarTodos();

                    //Busqueda en tabla Poscosecha Caja
                    //******************************************************************************
                    for (int i = 0; i < datosTablaPoscosechaCaja.Rows.Count; i++)
                    {

                        if (datosTablaPoscosechaCaja.Rows[i][0].ToString().IndexOf(paramBusquedaIntroducido.ToLower()) != -1)
                        {

                            for (int j = 0; j < tablaPoscosechaCajaBuscado.Rows.Count; j++)
                            {
                                if (tablaPoscosechaCajaBuscado.Rows[j][i + 1].Equals(1))
                                {
                                    idPoscosecha = int.Parse(tablaPoscosechaCajaBuscado.Rows[j][0].ToString());

                                    cPOSCOSECHABase poscosecha = new cPOSCOSECHABase();                                    
                                    DataTable tablaPoscosecha = new DataTable();
                                    tablaPoscosecha = poscosecha.SeleccionarTodos();

                                    for (int k = 0; k < tablaPoscosecha.Rows.Count; k++)
                                    {
                                        if (tablaPoscosecha.Rows[k][0].Equals(idPoscosecha))
                                        {
                                            idEmpresa = int.Parse(tablaPoscosecha.Rows[k][1].ToString());
                                            empresa2.IdEmpresa = idEmpresa;
                                            empresa2.SeleccionarUno();

                                            if (listaEmpresasIncluidas.Count == 0)
                                            {
                                                listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                            }
                                            else
                                            {
                                                for (int s = 0; s < listaEmpresasIncluidas.Count; s++)
                                                {

                                                    if (empresa2.NombreEmpresa.ToString().Equals(listaEmpresasIncluidas[s]))
                                                    {
                                                        //ya existe la empresa en la lista                                                             
                                                        bandera = true;
                                                    }
                                                }

                                                if (bandera == false)
                                                {
                                                    listaEmpresasIncluidas.Add(empresa2.NombreEmpresa.ToString());
                                                    listboxResultadoBusqueda.Items.Add(empresa2.NombreEmpresa.ToString());
                                                    arregloIdsBusquedas[j] = empresa2.IdEmpresa.ToString();
                                                }
                                            }
                                        }
                                    }
                                }

                            }
                        }
                    }                    
                }//
            }
        }


        protected void listboxEmpresasInscritas_SelectedIndexChanged(Object sender, EventArgs e)
        {
            variableID = arregloIDs[listboxEmpresasInscritas.SelectedIndex];
            Session["idEmpresa"] = variableID;
            Response.RedirectPermanent("desplegarEmpresaPerfil.aspx");
        }


        protected void Page_Init(object sender, EventArgs e)
        {
                dataTableEmpresas = listaEmpresas.SeleccionarTodos();
   
                arregloIDs = new string[dataTableEmpresas.Rows.Count];
                arregloNombresEmpresas = new string[dataTableEmpresas.Rows.Count];

                listboxEmpresasInscritas.Items.Clear();
                
                for (int i = 0; i < dataTableEmpresas.Rows.Count; i++)
                {
                    
                    listboxEmpresasInscritas.Items.Add(dataTableEmpresas.Rows[i][2].ToString());
                    arregloIDs[i] = dataTableEmpresas.Rows[i][0].ToString();

                    arregloNombresEmpresas[i] = dataTableEmpresas.Rows[i][2].ToString();
                }

            
                String arrName = "arregloIDs";
                string arrValue = String.Join(",", arregloIDs);
                ClientScriptManager cs = Page.ClientScript;
                cs.RegisterArrayDeclaration(arrName, arrValue);            
                       
        }

        protected void ButtonDescargar_Click(object sender, EventArgs e)
        {
            pdf.Portada();
        }
        protected void ButtonCatalogoP_Click(object sender, EventArgs e)
        {
            Response.RedirectPermanent("catalogoInicio.aspx");

        }

        protected void ButtonHome_Click(object sender, EventArgs e)
        {
            Response.RedirectPermanent("Default.aspx");
        }
        
    }
}